﻿using Microsoft.VisualStudio.CommandBars;

namespace ImaginarTI.RealFolders.Menu
{

    /// <summary>
    /// Describes properties needed for a VS command and it's actions
    /// </summary>
    public class VSCommandInfo
    {
        /// <summary>
        /// default Office bitmap id for menu
        /// </summary>
        int _BitmapResourceId = 59;

        /// <summary>
        /// USe Office "location" for resources ?
        /// </summary>
        bool _UseOfficeResources = true;

        /// <summary>
        /// Command Unique ID
        /// </summary>
        public string UniqueID { get; set; }

        /// <summary>
        /// Object owning this Command
        /// </summary>
        public object Owner { get; set; }

        /// <summary>
        /// Command name 
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Command caption
        /// </summary>
        public string Caption { get; set; }

        /// <summary>
        /// Command tooltip
        /// </summary>
        public string ToolTip { get; set; }

        /// <summary>
        /// Command position inside menus/submenus
        /// </summary>
        public int Position { get; set; }

        /// <summary>
        /// Add separator ?
        /// </summary>
        public bool HaveSeparator { get; set; }

        /// <summary>
        /// Bitmap resource id for this Command
        /// </summary>
        public int BitmapResourceId
        {
            get { return _BitmapResourceId; }
            set { _BitmapResourceId = value; }
        }
        /// <summary>
        /// Yes = use Office, False= use our resources
        /// </summary>
        public bool UseOfficeResources
        {
            get { return _UseOfficeResources; }
            set { _UseOfficeResources = value; }
        }

        /// <summary>
        /// The code that will be run for a command
        /// </summary>
        public PerformActionForVSCommandDelegate Action { get; set; }


        /// <summary>
        /// Visual studio Command Control object
        /// </summary>
        public CommandBarControl Control { get; set; }
    }


}